数字逻辑综合工具 |
您所在的位置:网站首页 › verilog constraint约束 › 数字逻辑综合工具 |
数字逻辑综合工具-DC-04
——怎样增加时序约束(Timing Constraints)
逻辑综合的过程为:转化 优化 映射 另外还有环境约束和面积约束 时序有三个大的方面 input logic paths internal paths output paths 一个项目需要有一个spec即设计说明书 里面有项目的一些要求【文字性的描述】 (功能要求 性能要求) 逻辑综合需要添加满足这些要求的约束 在写rtl代码的时候最好是单个时钟,单沿触发,不然会生成一些很奇怪的FF 默认情况下,不告诉dc,默认为同步时钟 异步时钟需要手动设置 做时序分析需要路径 何为路径: 起点->终点 起点:Input port Clock pin of FF or register 终点:Output port input pin of a sequential device, except clock pin 【dc_shell 的一些Tcl命令】 create_clock -period 2 [get_ports clk] 【创建时钟】【2ns】 【默认单位是ns】 【从工艺库里通过 report_lib 命令查看】 Tmax=Tc2q+Tcomb+Tsu 创建时钟的时候可以指定占空比 -waveform(注意,单位是时间),也可以指定一个名字-name dc认为时钟是ideal的,dc不会处理时钟网络,因为直接放置clk会有大扇出,dc算的不准!这部分的工作是后端去做的!!后端的CTS(时钟树综合) 实际的时钟会有sker和jitter,可以用一个参数对这些特性进行模仿: set_clock_uncertainty -setup Tu [get_clocks clk] 一般来讲,对setup建立一个模型 比如 设置时钟的上升时间、下降时间(即斜坡) set_clock_transition Tt [gets_clocks clk] 这些值是猜测出来的,版图画好了之后,就不需要这些猜测的值了(CTS之后的STA) 在路径涉及到外部端口的时候,如输入端,需要人为地告诉DC,之前的延时是多少
【从input到output的组合路径】 【纯组合电路】 估算:不知道怎么设置input_delay 和output_delay的时候,采用组合电路40%+40%,剩下的20%留给clock_to_q和setup 【寄存器输出】 【实操环节】 list_designs 【查看当前dc读了的文件】 remove_design -hierarchy analyze -format verilog [list top.v conter.v fsm_moore.v] elaborate -architecture verilog top 【这两个指令会实现link,elaborate会自动指定top,也可以手动敲link】 但是用current_design 命令更好读 设计读进来了,需要检查一下语法命令 比如在例化的时候有没有出现递归 check_design 如果返回0,就有问题 【在top脚本里,一般要做一些查错,如果有错,直接退出】 在添加约束之前,建议执行reset_design 把以前的约束全部抹掉 【一部分在dc_shell下的实例操作:】 【创建时钟】 【input_delay】 外面留60% 【检查时序问题check_timing】 检查有没有没有约束到的 【compile】 compile -map_effort high -area_effort high -boundary_optimization (尽最大努力做优化) DC到这里会去做综合 【做完综合之后,看看有没有约束违规的】 report_constraint -all_violators 工作环境,线负载模型、设计规则都没有约束,输入的驱动单元没有约束,输出的负载没有约束 还有一些别的命令: report_timing -delay_type max【把最差的路径报出来】(后面会讲) /******************************* 如何写一个DC的约束脚本 ********************************/
//这里很重要!! 【脚本写好了,怎么去检查语法错误?】 在dc_shell下运行命令: dc_shell> dcprocheck 【写完之后,确认脚本没有错误,在dc_shell下启动脚本】 dc_shell> source …/script/top.tcl (在top里面放了一个重定向的命令,把约束文件读进来) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |